package br.org.acessobrasil.portal.action.itemConteudo;

import org.apache.log4j.Logger;

import br.org.acessobrasil.portal.modelo.Conteudo;
import br.org.acessobrasil.portal.modelo.ItemConteudo;
import br.org.acessobrasil.portal.modelo.Usuario;

public class ListarItemConteudoAction extends BaseItemConteudo{
	private static final long serialVersionUID = -7343489857679495134L;
	private static Logger logger = Logger.getLogger(ListarItemConteudoAction.class);
	private String fator;
	public ListarItemConteudoAction() {}
	@Override
	public String execute() throws Exception {
		Usuario usuario = getUsuarioLogado();
		try {
			//Conteudo conteudo = conteudoDao.select(getConteudo().getNuConteudo());
			Conteudo conteudo = getItemConteudoFacade().buscarConteudo(getConteudo().getNuConteudo());
			if(conteudo != null){
				setConteudo(conteudo);
				
				//Mostra o item de conteudo temporario
				ItemConteudo itemConteudoTemp = getItemConteudoDaoTemp().getItemConteudo(0l);
				setItemConteudo(itemConteudoTemp);
				
				//setListItemConteudo(conteudoDao.listarItemConteudo(conteudo, 0, Integer.MAX_VALUE, true));
				setListItemConteudo(getItemConteudoFacade().listarItemConteudo(conteudo, 0, Integer.MAX_VALUE, true));
			}else{
				usuario.addActionError("O conte&uacute;do solicitado n&atilde;o existe.");
				return INPUT;		
			}
		} catch (Exception e) {
			logger.error("erro ao listar", e);
			usuario.addActionError("Erro: " + e.getMessage());
		}
		return SUCCESS;
	}
	
	public String alterarOrdemItemConteudo(){
		Usuario usuario = getUsuarioLogado();
		try{
			if(fator.equals("1")){
				getItemConteudoFacade().aumentarOrdemItem(usuario, getItemConteudo());
			}else if(fator.equals("0")){
				getItemConteudoFacade().diminuirOrdemItem(usuario, getItemConteudo());
			}
			usuario.addActionMessage("Alterado com sucesso.");
		}catch (Exception e) {
			usuario.addActionMessage("Erro: "+e.getMessage());
			logger.error("erro ao alterar ordem" + e, e);
		}
		return SUCCESS;	
	}
	
	public String getFator() {
		return fator;
	}
	public void setFator(String fator) {
		this.fator = fator;
	}
	

	
}
